package dto

import "yuanxin-admin/internal/model"

type SysMenuDTO struct {
	// 菜单名称
	MenuName string `json:"menuName"`

	// 父菜单ID
	ParentId *int64 `json:"parentId"`

	// 显示顺序
	OrderNum *int32 `json:"orderNum"`

	// 路由地址
	Path *string `json:"path"`

	// 组件路径
	Component *string `json:"component"`

	// 路由参数
	Query *string `json:"query"`

	// 路由名称
	RouteName *string `json:"routeName"`

	// 是否为外链（0是 1否）
	IsFrame *int32 `json:"isFrame"`

	// 是否缓存（0缓存 1不缓存）
	IsCache *int32 `json:"isCache"`

	// 菜单类型（M目录 C菜单 F按钮）
	MenuType *string `json:"menuType"`

	// 是否可见（0显示 1隐藏）
	Visible *string `json:"visible"`

	// 菜单状态（0正常 1停用）
	Status *string `json:"status"`

	// 权限标识
	Perms *string `json:"perms"`

	// 菜单图标
	Icon *string `json:"icon"`

	// 备注
	Remark *string `json:"remark"`
}

func (d *SysMenuDTO) ToEntity() *model.SysMenu {
	var entity = &model.SysMenu{
		MenuName:  d.MenuName,
		ParentID:  d.ParentId,
		OrderNum:  d.OrderNum,
		Path:      d.Path,
		Component: d.Component,
		Query:     d.Query,
		RouteName: d.RouteName,
		IsFrame:   d.IsFrame,
		IsCache:   d.IsCache,
		MenuType:  d.MenuType,
		Visible:   d.Visible,
		Status:    d.Status,
		Perms:     d.Perms,
		Icon:      d.Icon,
	}
	return entity
}
